<?php

abstract class Personne {

    protected $identifiant = 0; // Identifiant de la personne 
    protected $nom = ""; // Nom de la personne 
    protected $prenom = ""; // Prénom de la personne 
    protected $password = "";  // mot de passe de la personne 
    protected $image = "";      // Image de la personne 

    // CONSTRUCTEUR / DESTRUCTEUR
    public function __construct() {
        $num = func_num_args();
        switch ($num) {
            
                
            case 5 : 
                $this->image = func_get_arg(5);
            case 4:
                $this->password = func_get_arg(3);
            case 3:
                $this->prenom = func_get_arg(2);
            case 2:
                //deux param�tres pass�s
                $this->nom = func_get_arg(1);
            case 1:
                //un seul param�tre pass�
                $this->identifiant = func_get_arg(0);
                break;
            default:
            // Pas d'argument
        }
    }

    public function __destruct() {
        //print("Question __destruct() appel� <br/>");
        unset($this->identifiant);
        unset($this->nom);
        unset($this->prenom);
        unset($this->password);
        unset($this->image);
    }

    // SETTEURS
    public function setIdentifiant($id) {
        $this->identifiant = $id;
    }

    public function setNom($n) {
        $this->nom = $n;
    }

    public function setPrenom($p) {
        $this->prenom = $p;
    }

    public function setPassword($p) {
        $this->password = $p;
    }
     public function setImage($i) {
        $this->image = $i;
    }
    
   

    // GETTEURS
    public function getIdentifiant() {
        return $this->identifiant;
    }

    public function getNom() {
        return $this->nom;
    }

    public function getPrenom() {
        return $this->prenom;
    }

    public function getPassword() {
        return $this->password;
    }
    
    public function getImage() {
        return $this->image;
    }
 

    // FONCTIONS
    public function preprint() {
        echo "<pre>";
        print_r($this);
        echo "</pre>";
    }

}

?>